package com.unitd.base.module.api.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;


/**
 * @author lipengjun
 * @email 939961241@qq.com
 * @date 2017-08-15 08:03:40
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@TableName(value = "nideshop_goods")
public class GoodsVo implements Serializable {
    private static final long serialVersionUID = 1L;

    //主键
    private Integer id;
    //商品类型Id
    @JsonProperty("category_id")
    @TableField("category_id")
    private Integer categoryId;
    //商品序列号
    @JsonProperty("goods_sn")
    @TableField("goods_sn")
    private String goodsSn;
    //名称
    private String name;
    //品牌Id
    @JsonProperty("brand_id")
    @TableField("brand_id")
    private Integer brandId;
    //商品序列号
    @JsonProperty("goods_number")
    @TableField("goods_number")
    private Integer goodsNumber;
    //关键字
    private String keywords;
    //简明介绍
    @JsonProperty("goods_brief")
    @TableField("goods_brief")
    private String goodsBrief;
    //商品描述
    @JsonProperty("goods_desc")
    @TableField("goods_desc")
    private String goodsDesc;
    //上架
    @JsonProperty("is_on_sale")
    @TableField("is_on_sale")
    private Integer isOnSale;
    //添加时间
    @JsonProperty("add_time")
    @TableField("add_time")
    private Date addTime;
    //排序
    @JsonProperty("sort_order")
    @TableField("sort_order")
    private Integer sortOrder;
    //删除状态
    @JsonProperty("is_delete")
    @TableField("is_delete")
    private Integer isDelete;
    //属性类别
    @JsonProperty("attribute_category")
    @TableField("attribute_category")
    private Integer attributeCategory;
    //专柜价格
    @JsonProperty("counter_price")
    @TableField("counter_price")
    private BigDecimal counterPrice;
    //附加价格
    @JsonProperty("extra_price")
    @TableField("extra_price")
    private BigDecimal extraPrice;
    //是否新商品
    @JsonProperty("is_new")
    @TableField("is_new")
    private Integer isNew;
    //商品单位
    @JsonProperty("goods_unit")
    @TableField("goods_unit")
    private String goodsUnit;
    //商品主图
    @JsonProperty("primary_pic_url")
    @TableField("primary_pic_url")
    private String primaryPicUrl;
    //商品列表图
    @JsonProperty("list_pic_url")
    @TableField("list_pic_url")
    private String listPicUrl;
    //市场价
    @JsonProperty("market_price")
    @TableField("market_price")
    private BigDecimal marketPrice;
    //零售价格(现价)
    @JsonProperty("retail_price")
    @TableField("retail_price")
    private BigDecimal retailPrice;
    //销售量
    @JsonProperty("sell_volume")
    @TableField("sell_volume")
    private Integer sellVolume;
    //主sku　product_id
    @JsonProperty("primary_product_id")
    @TableField("primary_product_id")
    private Integer primaryProductId;
    //单位价格，单价
    @JsonProperty("unit_price")
    @TableField("unit_price")
    private BigDecimal unitPrice;
    //推广描述
    @JsonProperty("promotion_desc")
    @TableField("promotion_desc")
    private String promotionDesc;
    //推广标签
    @JsonProperty("promotion_tag")
    @TableField("promotion_tag")
    private String promotionTag;
    //APP专享价
    @JsonProperty("app_exclusive_price")
    @TableField("app_exclusive_price")
    private BigDecimal appExclusivePrice;
    //是否是APP专属
    @JsonProperty("is_app_exclusive")
    @TableField("is_app_exclusive")
    private Integer isAppExclusive;
    //限购
    @JsonProperty("is_limited")
    @TableField("is_limited")
    private Integer isLimited;
    //热销
    @JsonProperty("is_hot")
    @TableField("is_hot")
    private Integer isHot;
    //购物车中商品数量
    @JsonProperty("cart_num")
    @TableField(exist = false)
    private Integer cart_num = 0;
    // 冗余
    // 产品Id
    @TableField(exist = false)
    private Integer product_id;

    @TableField(exist = false)
    private List<Integer> categoryIds;
}
